/**
 * 描述:SpringCloud
 *  1.以前的项目
 *      1.euraka：注册中心，各个服务启动时，Eureka Client都会将服务注册到Eureka Server，并且Eureka Client还可以反过来从Eureka Server拉取注册表，
 *      从而知道其他服务在哪里
 *          1.心跳机制
 *      2.zuul：网关，如果前端、移动端要调用后端系统，统一从Zuul网关进入，由Zuul网关转发请求给对应的服务
 *          1.
 *      3.Feign：服务调用，基于Feign的动态代理机制，根据注解和选择的机器，拼接请求URL地址，发起请求
 *          1.使用了动态代理
 *              1.首先，对某个接口定义了@FeginClient注解，Fegin就会针对这个接口创建一个动态代理
 *              2.调用接口时，Fegin的动态代理会根据在接口上的@RequestMapping等注解，来动态构造要请求的服务的地址
 *              3.根据这个地址发起请求、解析响应
 *          2.Fegin是和Ribbon以及Eureka紧密协作的
 *              1.首先Ribbon会从Eureka Client里获取到对应的服务注册表，也就知道了所有的服务都部署在了哪些机器上，在监听哪些端口
 *              2.然后Ribbon就可以使用默认的Round Robin算法，从中选择一台机器
 *              3.Fegin就会针对这台机器，构造并发起请求
 *      4.ribbon：服务间负载均衡，服务间发起请求的时候，基于Ribbon做负载均衡，从一个服务的多台机器中选择一台
 *          1.Ribbon是一个基于HTTP和TCP的客户端负载均衡器，它可以在通过客户端中配置的ribbonServerList服务端列表去轮询访问以达到服务均衡的作用
 *          2.在客户端负载均衡中，所有客户端节点都维护着自己要访问的服务端清单，而这些服务端的清单来自于服务注册中心（比如Eureka）
 *          3.在客户端负载均衡中也需要心跳去维护服务端清单的健康性，只是这个步骤需要与服务注册中心配合完成
 *          4.过程：
 *              1.服务提供者只需要启动多个服务实例并且注册到一个注册中心或是多个相关联的服务注册中心
 *              2.服务消费者直接通过调用被@LoadBalanced注解修饰过的RestTemplate来实现面向服务的接口调用
 *      5.Hystrix：断路器，发起请求是通过Hystrix的线程池来走的，不同的服务走不同的线程池，实现了不同服务调用的隔离，避免了服务雪崩的问题
 *          1.服务熔断
 *              1.当下游服务因为请求量过大而变得缓慢或失败，上游服务为了保证系统整体的可用性，可用暂时切断对下游服务的调用。这种牺牲局部，保全整体的措施
 *                就叫做服务熔断
 *              2.开启熔断：当接口请求的超时比率达到一个阈值，就会开启熔断。对后续的请求，不再进入到具体服务内部，而且直接执行本地方法，返回一个友好的提示，
 *                达到服务降级的效果
 *              3.熔断恢复：熔断不可能是永久的，当经过了规定的时间，服务会从熔断状态恢复过来，再次接受远程方法的调用
 *          2.服务降级
 *              1.当服务器压力剧增的情况下，根据实际业务情况及流量，对一些服务和页面有策略的不处理或换种简单的方式处理，不让客户端等待而返回一个友好得提示，
 *                从而释放服务器资源以保证核心交易正常运作或高效运作
 *          3.服务限流
 *              1.在秒杀等高并发的情况下，严禁请求一窝蜂地就打入到服务器，大家排队，有序进行
 *  2.现在的项目
 *      1.nacos：分布式配置，注册中心
 *          1.采用raft选举算法构建集群，集群是leader和flower节点，集群选举是投票，大于一半的，任期机制，只有Leader节点才有数据处理和信息分发的功能
 *          2.通过心跳机制建立与消费端和提供端的连接
 *      2.gateway：网关
 *          1.为什么不用zuul
 *              1.早期用的是zuul，但是zuul有一个最大的缺点，是不支持websocket，而且gateway的吞吐量会更大点，还能做负载均衡
 *          2.里面啥功能，怎么用的？(鉴权，流量控制，熔断，路径重写，日志监控)
 *              1.做路由拦截，路由放行，动态路由加载
 *              2.做token校验，token存redis的，类似以前单服务的拦截器，判断用户是否登录
 *              3.跨域配置，跨站防御攻击，脚本攻击配置
 *              4.swagger-ui配置
 *              5.结合hystrix或者sentinel作限流熔断
 *              6.就是把以前单服务器拦截器过滤器中的统一配置放到了网关中，然后只用配置这一个就行，其它服务都不用改了
 *      3.sentinel
 *          1.
 *      4.skywalking：分布式链路追踪
 *          1.
 *
 *
 * @author
 * @created 2022/2/8 9:50
 */
public class SpringCloud {
}
